﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Configuration;
using System.Configuration;
using System.Data.SqlClient;

namespace SW_SoftBully.Models.ModuloServicios.ContratoPreventivo
{
    public class ContratoPreventivoDAO
    {
        public ContratoPreventivoBean RegistrarContratoPreventivo(ContratoPreventivoBean contratoPreventivoB)
        {
            ContratoPreventivoBean contratoPreventivo = new ContratoPreventivoBean();
            try
            {
                if (contratoPreventivoB.id_mantenible == 0)
                {
                    if (string.IsNullOrEmpty(contratoPreventivoB.descripcion))
                    {
                        contratoPreventivoB.descripcion = "";
                    }

                    String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;
                    SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
                    sqlCon.Open();
                    string commandString = "INSERT INTO dbo.contrato_preventivo (descripcion,fecha_registro,fecha_inicial,fecha_final,id_proveedor,periodo, estado, id_edificio) " +
                                           "VALUES('" + contratoPreventivoB.descripcion + "', convert(datetime,'" + contratoPreventivoB.fecha_registro + "',103), convert(datetime,'" + contratoPreventivoB.fecha_inicial +
                                                    "',103), convert(datetime,'" + contratoPreventivoB.fecha_final + "',103), " + contratoPreventivoB.id_proveedor + ",'" + contratoPreventivoB.periodo + "'," +
                                                    " 1," + contratoPreventivoB.id_edificio + ")";

                    System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + commandString);

                    SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                    sqlCmd.ExecuteNonQuery();
                    sqlCon.Close();

                    //obtener el contrato registrado
                    SqlConnection sqlCon1 = new SqlConnection(cadenaConfiguracion);
                    sqlCon1.Open();

                    //string commandString1 = "SELECT IDENT_CURRENT('contrato_preventivo')"; // revisar esta webada
                    string commandString1 = "SELECT max(id_contrato_preventivo) from contrato_preventivo"; // revisar esta webada

                    System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + commandString1);

                    SqlCommand sqlCmd1 = new SqlCommand(commandString1, sqlCon1);
                    SqlDataReader dataReader = sqlCmd1.ExecuteReader();

                    while (dataReader.Read())
                    {
                        contratoPreventivo.id_contrato_preventivo = Convert.ToInt32(dataReader[0]);
                    }

                    System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + contratoPreventivo.id_contrato_preventivo);
                    dataReader.Close();
                    sqlCon1.Close();

                    if (contratoPreventivoB.opcion == 24) contratoPreventivo.conexion = "Se ingreso correctamente el Contrato Preventivo";
                    else
                    contratoPreventivo.conexion = "agregado";

                    //para webearlo a la bd
                    //SqlConnection sqlCon2 = new SqlConnection(cadenaConfiguracion);
                    //sqlCon2.Open();

                    //string commandString2 = "SELECT * from contrato_preventivo";

                    //System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + commandString1);

                    //SqlCommand sqlCmd2 = new SqlCommand(commandString2, sqlCon1);
                    //SqlDataReader dataReader2 = sqlCmd1.ExecuteReader();
                    ////System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + contratoPreventivo.id_contrato_preventivo);
                    //dataReader2.Close();
                    //sqlCon2.Close();

                }
                else
                {
                    if (contratoPreventivoB.id_mantenible > 0)
                    {
                        // convert(datetime,'" + mantenimientoPreventivo.FechaInicio + "',103)
                        string commandString = "INSERT INTO contrato_x_mantenible (id_contrato_preventivo, id_mantenible, fecha_inicial, fecha_final, estado) " +
                                               "VALUES(" + contratoPreventivoB.id_contrato_preventivo + ", " + contratoPreventivoB.id_mantenible + ", convert(datetime,'" + contratoPreventivoB.fecha_inicial +
                                                        "',103), convert(datetime,'" + contratoPreventivoB.fecha_final + "',103), 1)";

                        String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;
                        SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
                        sqlCon.Open();
                        SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                        sqlCmd.ExecuteNonQuery();
                        sqlCon.Close();


                        System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + commandString);

                        contratoPreventivo.id_contrato_preventivo = contratoPreventivoB.id_contrato_preventivo;
                        contratoPreventivo.conexion = "contrato_x_mantenible";
                    }
                }
            }

            catch
            {
                contratoPreventivo.conexion = "Existe un error en registrar Contrato Preventivo";
            }
            return contratoPreventivo;
        }


        public bool ExisteContratoPreventivo(int id_contrato_preventivo)
        {
            try
            {
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();

                string commandString = "SELECT * FROM contrato_preventivo WHERE id_contrato_preventivo = " + id_contrato_preventivo + "'";


                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);

                SqlDataReader dataReader = sqlCmd.ExecuteReader();

                if (dataReader.Read())
                {
                    ContratoPreventivoBean contratoPreventivoB = new ContratoPreventivoBean();
                    //cliente.id_tipoDocumento = (string)dataReader["id_tipoDocumento"];
                    //cliente.nro_documento = (string)dataReader["RUC"];

                    contratoPreventivoB.id_contrato_preventivo = (int)dataReader["id_contrato_preventivo"];
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch (Exception ex)
            {
                return false;
            }
        }

        public List<ContratoPreventivoBean> ListarContratoPreventivo(int id_contrato_preventivo, string descripcion, DateTime fecha_registro, DateTime fecha_inicial, DateTime fecha_final, int id_proveedor, string periodo)
        {

            List<ContratoPreventivoBean> listaContratosPreventivos = new List<ContratoPreventivoBean>();

            String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

            SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
            sqlCon.Open();

            string commandString = "SELECT * FROM contrato_preventivo";
            commandString = commandString + " WHERE id_contrato_preventivo =" + id_contrato_preventivo + " and estado = 1";
            SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
            SqlDataReader dataReader = sqlCmd.ExecuteReader();

            while (dataReader.Read())
            {
                ContratoPreventivoBean contratoPreventivoB = new ContratoPreventivoBean();
                //cliente. = (int)dataReader["idUsuario"];
                contratoPreventivoB.id_contrato_preventivo = (int)dataReader["id_contrato_preventivo"];
                contratoPreventivoB.descripcion = (string)dataReader["descripcion"];
                contratoPreventivoB.fecha_registro = (string)dataReader["fecha_registro"];
                contratoPreventivoB.fecha_inicial = (string)dataReader["fecha_inicial"];
                contratoPreventivoB.fecha_final = (string)dataReader["fecha_inicial"];
                contratoPreventivoB.id_proveedor = (int)dataReader["id_proveedor"];
                contratoPreventivoB.periodo = (string)dataReader["periodo"];
                
                listaContratosPreventivos.Add(contratoPreventivoB);
            }
            dataReader.Close();
            sqlCon.Close();

            return listaContratosPreventivos;

        }

        public List<ContratoPreventivoBean> ListarContratoPreventivo2(ContratoPreventivoBean contratoPreventivo)
        {
            try
            {
                //string id_contrato_preventivo = "";
                List<ContratoPreventivoBean> listaContratosPreventivos = new List<ContratoPreventivoBean>();

                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
                sqlCon.Open();


                //select * from contrato_preventivo where fecha_registro between '25/10/2012' and '31/10/2012' and id_proveedor in (select id_proveedor from proveedor where Nombre = 'Elevator')
                //10/17/2012 fecha

                //string commandString = "SELECT * FROM contrato_preventivo";
                //commandString = commandString + " WHERE fecha_registro between convert(datetime,'" + contratoPreventivo.fecha_inicial + "',103)"
                //    + " and convert(datetime,'" + contratoPreventivo.fecha_final + "',103) or id_proveedor in" +
                //    " (select id_proveedor from proveedor where Nombre = '" + contratoPreventivo.NombreProveedor + "')";

                //string commandString = "SELECT * FROM contrato_preventivo" +
                //                       " WHERE fecha_registro between convert(datetime,'" + contratoPreventivo.fecha_inicial + "',103)"
                //    + " and convert(datetime,'" + contratoPreventivo.fecha_final + "',103) or id_proveedor in" +
                //    " (select id_proveedor from proveedor where Nombre like '" + contratoPreventivo.NombreProveedor + "%') or ";

                string commandString = "";

                //if (contratoPreventivo.fecha_inicial.Equals("") || contratoPreventivo.fecha_final.Equals("")){ ((DateTime)dataReader[2]).ToString("dd/MM/yyyy")

                //System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA>fechaInicial " + contratoPreventivo.fecha_inicial+"");
                //System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA>fechaFinal " + contratoPreventivo.fecha_final+"");

                //idContrato, nombreEdificio, nombreProveedor, fechaRegistro, periodo, mantenible;
                
                //if((contratoPreventivo.fecha_final+"").Length==0 || (contratoPreventivo.fecha_inicial + "").Length==0){
                //    commandString += "select cp.id_contrato_preventivo, e.Nombre, p.Nombre, cp.fecha_registro, cp.periodo, m.Nombre, m.id_mantenible, e.id_Edificio " +
                //                     "from edificio e, contrato_preventivo cp, proveedor p, mantenible m, contrato_x_mantenible cxm " +
                //                     "where cp.fecha_registro between convert(datetime,'" + contratoPreventivo.fecha_inicial + "',103) and convert(datetime,'" + contratoPreventivo.fecha_final + "',103) or " +
                //                     "p.Nombre like '%" + contratoPreventivo.NombreProveedor + "%' and  m.Nombre like '" + contratoPreventivo.NombreMantenible + "%' and " +
                //                     "cp.id_proveedor = p.id_proveedor and cp.id_contrato_preventivo = cxm.id_contrato_preventivo and m.id_mantenible = cxm.id_mantenible "+
                //                     "and cp.id_edificio = e.id_Edificio and e.Nombre like '%" + contratoPreventivo.NombreEdificio + "%' and cp.estado = 1";
                //}
                //else commandString += "select cp.id_contrato_preventivo, e.Nombre, p.Nombre, cp.fecha_registro, cp.periodo, m.Nombre, m.id_mantenible, e.id_Edificio " +
                //                     "from contrato_preventivo cp, proveedor p, mantenible m, contrato_x_mantenible cxm " +
                //                     "where cp.fecha_registro between convert(datetime,'" + contratoPreventivo.fecha_inicial + "',103) and convert(datetime,'" + contratoPreventivo.fecha_final + "',103) and " +
                //                     "p.Nombre like '" + contratoPreventivo.NombreProveedor + "%' and  m.Nombre like '" + contratoPreventivo.NombreMantenible + "%' and " +
                //                     "cp.id_proveedor = p.id_proveedor and cp.id_contrato_preventivo = cxm.id_contrato_preventivo and m.id_mantenible = cxm.id_mantenible " +
                //                     "and cp.id_edificio = e.id_Edificio and e.Nombre like '%" + contratoPreventivo.NombreEdificio + "%' and cp.estado = 1";

                commandString += "select cp.id_contrato_preventivo, e.Nombre, p.RazonSocial, cp.fecha_registro, cp.periodo, m.Nombre, m.id_mantenible, e.id_Edificio " +
                                 "from edificio e, contrato_preventivo cp, proveedor p, mantenible m, contrato_x_mantenible cxm " +
                                 "where cp.estado = 1 and cp.id_proveedor = p.id_proveedor "+
                                        "and cp.id_contrato_preventivo = cxm.id_contrato_preventivo and m.id_mantenible = cxm.id_mantenible "+
                                        "and cp.id_edificio = e.id_Edificio";

                if (!string.IsNullOrEmpty(contratoPreventivo.fecha_inicial) || !string.IsNullOrEmpty(contratoPreventivo.fecha_final)){
                    commandString += " AND cp.fecha_registro BETWEEN convert(datetime,'" + contratoPreventivo.fecha_inicial + "',103)"
                                   + " AND convert(datetime,'" + contratoPreventivo.fecha_final + "',103)";
                }

                if (!string.IsNullOrEmpty(contratoPreventivo.NombreProveedor)) { 
                    commandString += " AND p.RazonSocial like '" + contratoPreventivo.NombreProveedor + "%'";
                }

                if (!string.IsNullOrEmpty(contratoPreventivo.NombreMantenible))
                {
                    commandString += " AND m.Nombre like '" + contratoPreventivo.NombreMantenible + "%'";
                }

                if (!string.IsNullOrEmpty(contratoPreventivo.NombreEdificio))
                {
                    commandString += " AND e.Nombre like '" + contratoPreventivo.NombreEdificio + "%'";
                }

                System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + commandString);

                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                SqlDataReader dataReader = sqlCmd.ExecuteReader();

                while (dataReader.Read())
                {
                    ContratoPreventivoBean contratoPreventivoB = new ContratoPreventivoBean();
                    //cliente. = (int)dataReader["idUsuario"];
                    contratoPreventivoB.id_contrato_preventivo = (int)dataReader[0];
                    contratoPreventivoB.NombreEdificio = Convert.ToString(dataReader[1]);
                    contratoPreventivoB.NombreProveedor = (string)dataReader[2];
                    contratoPreventivoB.fecha_registro = ((DateTime)dataReader[3]).ToString("dd/MM/yyyy");
                    contratoPreventivoB.periodo = (string)dataReader[4];
                    contratoPreventivoB.NombreMantenible = (string)dataReader[5];
                    contratoPreventivoB.id_mantenible = (int)dataReader[6];
                    contratoPreventivoB.id_edificio = (int)dataReader[7];

                    listaContratosPreventivos.Add(contratoPreventivoB);
                }
                dataReader.Close();
                sqlCon.Close();

                return listaContratosPreventivos;
            }
            catch (Exception e) {
                contratoPreventivo.conexion = e.ToString();
                return null;
            }

        }

        public List<ContratoPreventivoBean> ListarMantenimientos(ContratoPreventivoBean contrato)
        {
            try
            {
                List<ContratoPreventivoBean> ListarMantenimientos = new List<ContratoPreventivoBean>();

                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();


                string commandString = "SELECT m.Nombre, m.id_mantenible FROM mantenible m, proveedor_x_mantenible pxm, proveedor p "+
                                       "where m.Estado = 1 and m.id_mantenible = pxm.id_mantenible and pxm.id_proveedor = p.id_proveedor and p.RazonSocial ='" + contrato.NombreProveedor +"'";
                //string commandString = "SELECT * from mantenible";


                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);

                SqlDataReader dataReader = sqlCmd.ExecuteReader();

                while (dataReader.Read())
                {
                    ContratoPreventivoBean Contrato = new ContratoPreventivoBean();
                    Contrato.NombreMantenible = Convert.ToString(dataReader["Nombre"]);
                    Contrato.id_mantenible = (int)dataReader["id_mantenible"];
                    System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + Contrato.NombreMantenible);
                    System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + Contrato.id_mantenible);
                    ListarMantenimientos.Add(Contrato);
                }
                dataReader.Close();
                sqlCon.Close();

                return ListarMantenimientos;
            }
            catch (Exception e)
            {
                contrato.conexion = e.ToString();
                return null;
            }
        }

        public List<ContratoPreventivo.ContratoPreventivoBean> listaTodosMisMantenibles(string nombremantenible)
        {
            try
            {
                List<ContratoPreventivoBean> ListarMantenimientos = new List<ContratoPreventivoBean>();

                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();


                //string commandString = "SELECT m.Nombre, m.id_mantenible FROM mantenible m, contrato_x_mantenible cxm where m.id_mantenible = cxm.id_mantenible and cxm.id_contrato_preventivo = " + contrato.id_contrato_preventivo;
                string commandString = "SELECT Nombre from mantenible where Nombre like '"+nombremantenible+"%' and Estado=1";

                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);

                SqlDataReader dataReader = sqlCmd.ExecuteReader();

                while (dataReader.Read())
                {
                    ContratoPreventivoBean Contrato = new ContratoPreventivoBean();
                    Contrato.NombreMantenible = Convert.ToString(dataReader["Nombre"]);
                    System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + Contrato.NombreMantenible);
                    ListarMantenimientos.Add(Contrato);
                }
                dataReader.Close();
                sqlCon.Close();

                return ListarMantenimientos;
            }
            catch (Exception e)
            {
                return null;
            }
        }

        public List<ContratoPreventivoBean> ListarTodosMantenimientos(ContratoPreventivoBean contrato)
        {
            try
            {
                List<ContratoPreventivoBean> ListarMantenimientos = new List<ContratoPreventivoBean>();

                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();


                //string commandString = "SELECT m.Nombre, m.id_mantenible FROM mantenible m, contrato_x_mantenible cxm where m.id_mantenible = cxm.id_mantenible and cxm.id_contrato_preventivo = " + contrato.id_contrato_preventivo;
                string commandString = "SELECT * from mantenible where Estado = 1";

                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);

                SqlDataReader dataReader = sqlCmd.ExecuteReader();

                while (dataReader.Read())
                {
                    ContratoPreventivoBean Contrato = new ContratoPreventivoBean();
                    Contrato.id_mantenible = (int)dataReader["id_mantenible"];
                    Contrato.NombreMantenible = Convert.ToString(dataReader["Nombre"]);
                    System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + Contrato.NombreMantenible);
                    ListarMantenimientos.Add(Contrato);
                }
                dataReader.Close();
                sqlCon.Close();

                return ListarMantenimientos;
            }
            catch (Exception e)
            {
                return null;
            }
        }

        public List<ContratoPreventivoBean> ListarProveedores(ContratoPreventivoBean contrato)
        {
            try
            {
                List<ContratoPreventivoBean> ListarMantenimientos = new List<ContratoPreventivoBean>();

                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();


                //string commandString = "SELECT m.Nombre, m.id_mantenible FROM mantenible m, contrato_x_mantenible cxm where m.id_mantenible = cxm.id_mantenible and cxm.id_contrato_preventivo = " + contrato.id_contrato_preventivo;
                string commandString = "SELECT * from proveedor where estado = 1";

                if (!string.IsNullOrEmpty(contrato.NombreProveedor))
                {
                    commandString += " AND RazonSocial LIKE '" + contrato.NombreProveedor + "%'";
                }

                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);

                SqlDataReader dataReader = sqlCmd.ExecuteReader();

                while (dataReader.Read())
                {
                    ContratoPreventivoBean Contrato = new ContratoPreventivoBean();
                    Contrato.id_proveedor = (int)dataReader["id_proveedor"];
                    Contrato.NombreProveedor = Convert.ToString(dataReader["RazonSocial"]);
                    System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + Contrato.NombreProveedor);
                    ListarMantenimientos.Add(Contrato);
                }
                dataReader.Close();
                sqlCon.Close();

                return ListarMantenimientos;
            }
            catch (Exception e)
            {
                return null;
            }
        }

        public List<ContratoPreventivoBean> ListarContratoPreventivoBCP(ContratoPreventivoBean contratoPreventivo)
        {
            try
            {
                List<ContratoPreventivoBean> listaContratosPreventivos = new List<ContratoPreventivoBean>();

                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
                sqlCon.Open();
                string commandString = "";
                commandString += "select cp.id_contrato_preventivo, e.Nombre, p.RazonSocial, cp.fecha_registro, cp.periodo, e.id_Edificio, p.id_proveedor, cp.fecha_inicial, cp.fecha_final, cp.descripcion " +
                                 "from edificio e, contrato_preventivo cp, proveedor p " +
                                 "where cp.estado = 1 and cp.id_proveedor = p.id_proveedor " +
                                        "and cp.id_edificio = e.id_Edificio";

                if (!string.IsNullOrEmpty(contratoPreventivo.fecha_inicial) || !string.IsNullOrEmpty(contratoPreventivo.fecha_final))
                {
                    commandString += " AND cp.fecha_registro BETWEEN convert(datetime,'" + contratoPreventivo.fecha_inicial + "',103)"
                                   + " AND convert(datetime,'" + contratoPreventivo.fecha_final + "',103)";
                }

                if (!string.IsNullOrEmpty(contratoPreventivo.NombreProveedor))
                {
                    commandString += " AND p.RazonSocial like '" + contratoPreventivo.NombreProveedor + "%'";
                }

                if (!string.IsNullOrEmpty(contratoPreventivo.NombreEdificio))
                {
                    commandString += " AND e.Nombre like '" + contratoPreventivo.NombreEdificio + "%'";
                }

                System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + commandString);

                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                SqlDataReader dataReader = sqlCmd.ExecuteReader();

                while (dataReader.Read())
                {
                    ContratoPreventivoBean contratoPreventivoB = new ContratoPreventivoBean();
                    //cliente. = (int)dataReader["idUsuario"];
                    contratoPreventivoB.id_contrato_preventivo = (int)dataReader[0];
                    contratoPreventivoB.NombreEdificio = Convert.ToString(dataReader[1]);
                    contratoPreventivoB.NombreProveedor = (string)dataReader[2];
                    contratoPreventivoB.fecha_registro = ((DateTime)dataReader[3]).ToString("dd/MM/yyyy");
                    contratoPreventivoB.periodo = (string)dataReader[4];
                    contratoPreventivoB.id_edificio = (int)dataReader[5];
                    contratoPreventivoB.id_proveedor = (int)dataReader[6];
                    contratoPreventivoB.fecha_inicial = ((DateTime)dataReader[7]).ToString("dd/MM/yyyy");
                    contratoPreventivoB.fecha_final = ((DateTime)dataReader[8]).ToString("dd/MM/yyyy");
                    contratoPreventivoB.descripcion = (string)dataReader[9];

                    listaContratosPreventivos.Add(contratoPreventivoB);
                }
                dataReader.Close();
                sqlCon.Close();

                return listaContratosPreventivos;
            }
            catch (Exception e)
            {
                contratoPreventivo.conexion = e.ToString();
                return null;
            }
        }

        public string modificarContrato(ContratoPreventivoBean contratoPreventivo)
        {
            try
            {
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();

                string commandString = "UPDATE contrato_preventivo set " +
                                       "fecha_registro = convert(datetime, '" + contratoPreventivo.fecha_registro + "',103) , " +
                                       "fecha_inicial = convert(datetime, '" + contratoPreventivo.fecha_inicial + "',103) , " +
                                       "fecha_final = convert(datetime, '" + contratoPreventivo.fecha_final + "',103) , " +
                                       "descripcion = '" + contratoPreventivo.descripcion + "', " +
                                       "periodo = '" + contratoPreventivo.periodo + "' " +
                                       "where id_contrato_preventivo = " + contratoPreventivo.id_contrato_preventivo;

                System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + commandString);

                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);

                sqlCmd.ExecuteNonQuery();

                sqlCon.Close();

                contratoPreventivo.conexion = "Bien";

            }
            catch (Exception e)
            {
                String men = e.ToString();
                contratoPreventivo.conexion = men;
            }
            return contratoPreventivo.conexion;
        }

        public List<ContratoPreventivoBean> ListarDetalleContratoPreventivoBCP(ContratoPreventivoBean contratoPreventivo)
        {
            try
            {
                List<ContratoPreventivoBean> listaContratosPreventivos = new List<ContratoPreventivoBean>();

                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
                sqlCon.Open();
                string commandString = "";
                commandString += "select cxm.id_contrato_preventivo, cxm.id_mantenible, cxm.fecha_inicial, cxm.fecha_final, m.Nombre "+
                                 "from contrato_x_mantenible cxm, mantenible m "+
                                 "where cxm.estado = 1 and cxm.id_mantenible = m.id_mantenible and cxm.id_contrato_preventivo =" + contratoPreventivo.id_contrato_preventivo;

                System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + commandString);

                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                SqlDataReader dataReader = sqlCmd.ExecuteReader();

                while (dataReader.Read())
                {
                    ContratoPreventivoBean contratoPreventivoB = new ContratoPreventivoBean();
                    //cliente. = (int)dataReader["idUsuario"];
                    contratoPreventivoB.id_contrato_preventivo = (int)dataReader[0];
                    contratoPreventivoB.id_mantenible = Convert.ToInt32(dataReader[1]);
                    contratoPreventivoB.fecha_inicial = ((DateTime)dataReader[2]).ToString("dd/MM/yyyy");
                    contratoPreventivoB.fecha_final = ((DateTime)dataReader[3]).ToString("dd/MM/yyyy");
                    contratoPreventivoB.NombreMantenible = Convert.ToString(dataReader[4]);

                    listaContratosPreventivos.Add(contratoPreventivoB);
                }
                dataReader.Close();
                sqlCon.Close();

                return listaContratosPreventivos;
            }
            catch (Exception e)
            {
                contratoPreventivo.conexion = e.ToString();
                return null;
            }
        }

        public string eliminarContratoPreventivo(ContratoPreventivoBean contratoPreventivo)
        {
            try
            {
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();

                string commandString = "UPDATE contrato_preventivo SET estado = 0 WHERE id_contrato_preventivo = " + contratoPreventivo.id_contrato_preventivo + ";"+
                                       "UPDATE contrato_x_mantenible SET estado = 0 WHERE id_contrato_preventivo = "+ contratoPreventivo.id_contrato_preventivo;

                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                sqlCmd.ExecuteNonQuery();

                sqlCon.Close();

                contratoPreventivo.conexion = "Bien";
            }
            catch (Exception e)
            {
                String men = e.ToString();
                contratoPreventivo.conexion = men;
            }
            return contratoPreventivo.conexion;
        }
    }
}